两种在Python中使用Stanford CoreNLP的方法

这两种方法都需要提前下载CoreNLP最新的压缩包,再下载对应的语言jar包。从CoreNLP下载页面下载。将压缩包解压得到目录,再将语言的jar包放到这个目录下即可。并且要求java -version>=1.8。
接下来就是利用python对该工具的使用进行一个封装,这里主要给出两种常用的python wrapper。

1、使用stanfordcorenlp接口

见链接:Python中使用Stanford CoreNLP
这篇文档中将这种方法讲得很清楚,因此直接贴上链接,访问原文即可、、

2、使用官方Python接口python-stanford-corenlp

见链接:CoreNLP Python接口处理中文
在这篇文章中,作者是用的linux系统,并且拥有root权限。我这里提供另外两种不同环境的配置过程。

(1)windows 10 环境

在该环境下,配置环境变量与上文中的方法有一些不一样。具体方法是:
电脑右键->属性->高级属性->环境变量->新增->添加变量名javanlp,路径值为之前解压coreNLP得到的目录。

(2)linux 下不具有root权限的环境

在这种环境下,只需要在原文修改client.py里面初始化部分的代码的基础上再修改下即可。(路径:python-stanford-corenlp\corenlp\client.py)

# assert os.getenv(
#     "JAVANLP_HOME") is not None, "Please define $JAVANLP_HOME where your CoreNLP Java checkout is"
start_cmd = 'java -Xmx{memory}g -cp "{javanlp}/*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port {port} -timeout {timeout}'.format(
                memory=allocate_mem,
                javanlp="/home/xiongzy/anaconda3/coreNLP/stanford-corenlp-full-2016-10-31",

注释掉:

# assert os.getenv(
#     "JAVANLP_HOME") is not None, "Please define $JAVANLP_HOME where your CoreNLP Java checkout is"

将javanlp改为具体的值:

javanlp="/home/xiongzy/anaconda3/coreNLP/stanford-corenlp-full-2016-10-31"

然后进入python-stanford-corenlp目录重新重新安装即可python setup.py install

tips

(1)关闭server

每次第一种方法的代码中,每次使用后需要手动关闭server,nlp.close()。
第二种方法不用手动关闭,其自动关闭

(2)利用网页进行分析

当server处于开启状态时,可以通过ip:port(如:localhost:9000)打开网页版的分析器。效果如图。
Stanford coreNLP


文章作者: IrvingBei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 IrvingBei !
评论
 上一篇
利用nltk可视化stanford coreNLP构建的中文语法树 利用nltk可视化stanford coreNLP构建的中文语法树
在stanford coreNLP的网页中直接以树的形式可视化了解析结果。但在IDE中,利用python调用coreNLP server后返回的是字符串格式。这是可以利用nltk中的Tree类来可视化解析结果。代码如下: from nltk
2018-08-22
下一篇 
ROC原理介绍及基于python实现二分类和多分类的ROC曲线 ROC原理介绍及基于python实现二分类和多分类的ROC曲线
对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score1,以及即将要讨论的ROC和AUC。本文通过对这些指标的原理做一个简单的介绍,然后用python分别实现二分类和多分类的ROC曲线。 1 基本概念一
2018-08-19
  目录